]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
7 years agowindowManager: Always reset window actors when animations are cancelled
Jonas Dreßler [Sat, 26 Oct 2019 07:40:40 +0000 (09:40 +0200)]
windowManager: Always reset window actors when animations are cancelled

Remove all transformations from window actors after a window animation
was either cancelled or finished. Right now we only do that if the
transition finished successfully, which seems kind of pointless (it can
probably be historically explained because the callbacks inside the
"kill-window-effects" signal handler are connected to those
`*WindowDone()` functions though and the `*WindowOverwritten()`
functions were only added later in [1]).

This fixes a recent regression where a window animation would get
cancelled and remain stuck by switching workspaces. The regression
probably happened due to different behaviour of the `onOverwritten`
callback of Tweener and the `onStopped` callback of Clutter transitions:
For the workspace-switching animation the window actors get reparented
to a temporary container, which makes Clutter transititons emit
"stopped" (`clutter_actor_remove_child_internal()` stops transitions on
its children), while Tweener would continue the animation.

[1] https://gitlab.gnome.org/GNOME/gnome-shell/commits/6dd302e5ce187d6db9266a7d6c0b94fd37fa46f4

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/784

7 years agopopupMenu: Don't chain up vfuncs if the parent doesn't implement them
Jonas Dreßler [Sun, 27 Oct 2019 21:28:38 +0000 (22:28 +0100)]
popupMenu: Don't chain up vfuncs if the parent doesn't implement them

Some vfuncs like `button_press_event`, `button_release_event` and
`touch_event` don't have handlers in the parent classes of
PopupBaseMenuItem. So don't call those handlers and return the default
Clutter.EVENT_PROPAGATE there.

This fixes a crash of the shell that happens when pressing a mouse
button inside the system popup menu and releasing it above a slider like
the volume slider again.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/787

7 years agopanel: Update window section items on title changes
Florian Müllner [Mon, 28 Oct 2019 11:32:31 +0000 (12:32 +0100)]
panel: Update window section items on title changes

We currently only update the windows section when either the focus app changes,
or when the app's windows change (that is, a window is opened or closed). This
allows the menu item labels to become stale if the window title changes after
one of those events (for example when switching tabs).

Fix this by updating menu items when the corresponding window title changes.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1830

7 years agoappDisplay: Don't crash if app is missing categories
Philip Chimento [Fri, 25 Oct 2019 22:27:25 +0000 (15:27 -0700)]
appDisplay: Don't crash if app is missing categories

g_desktop_app_info_get_categories() may return null. In that case, the
previous code would fail to create a folder when dragging an app with
no categories onto another app. Instead, simply continue with the next
app info.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/782

7 years agodnd: Skip drag target when its acceptDrop() throws an exception
Philip Chimento [Wed, 23 Oct 2019 00:48:00 +0000 (17:48 -0700)]
dnd: Skip drag target when its acceptDrop() throws an exception

In the case of bugs in a drag target's acceptDrop() function, it may
throw an exception. In the previous code, this would break out of the
loop entirely and never cancel the drag, so the mouse button release
event would be ignored and you would have to press Esc to get out of the
drag.

In this change, if acceptDrop() throws an exception, we log it and move
on to the next parent target instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/777

7 years agojs: Replace Clutter.Actor.get_allocation_geometry()
Florian Müllner [Mon, 21 Oct 2019 15:42:12 +0000 (17:42 +0200)]
js: Replace Clutter.Actor.get_allocation_geometry()

The function was deprecated and has now been dropped from mutter.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/776

7 years agost: Use clutter_actor_pick() in pick
Georges Basile Stavracas Neto [Thu, 17 Oct 2019 14:59:13 +0000 (16:59 +0200)]
st: Use clutter_actor_pick() in pick

Use the new function to perform picking and avoid
going through any painting-related code paths.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/773

7 years agoUpdate Persian translation
Danial Behzadi [Sat, 19 Oct 2019 15:16:39 +0000 (15:16 +0000)]
Update Persian translation

7 years agoUpdate shotwell desktop file name references
Kalev Lember [Fri, 18 Oct 2019 13:28:26 +0000 (15:28 +0200)]
Update shotwell desktop file name references

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/774

7 years agoauthPrompt: Wiggle on failure
Georges Basile Stavracas Neto [Tue, 15 Oct 2019 19:34:35 +0000 (21:34 +0200)]
authPrompt: Wiggle on failure

Add a wiggle effect to the password entry on failure. The
parameters are set as per design review during GNOME Shell
Hackfest 2019.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/768

7 years agoutil: Add wiggle helper
Georges Basile Stavracas Neto [Thu, 17 Oct 2019 10:26:04 +0000 (12:26 +0200)]
util: Add wiggle helper

Add Util.wiggle(), which accepts the wiggle offset, duration,
and number of times, as parameters.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/768

7 years agoenvironment: Parse repeat-count and auto-reverse
Georges Basile Stavracas Neto [Tue, 15 Oct 2019 19:32:21 +0000 (21:32 +0200)]
environment: Parse repeat-count and auto-reverse

Those are two useful ClutterTimeline properties and
will be needed for wiggling the search entry when
failing the password.

Add support for passing repeat-count and auto-reverse
to ClutterActor.ease and ClutterActor.ease_property.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/768

7 years agosearch: Drop SearchResultInterface again
Florian Müllner [Thu, 17 Oct 2019 12:27:10 +0000 (14:27 +0200)]
search: Drop SearchResultInterface again

It adds a significant cost to AppIcons which are used
 - quite a log (depending on installed apps)
 - in preformance-sensitive contexts (spring animation)

Just rely on duck typing and revert 91a5133116.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1799

7 years agoUpdate Friulian translation
Fabio Tomat [Thu, 17 Oct 2019 13:54:18 +0000 (13:54 +0000)]
Update Friulian translation

7 years agoUpdate Croatian translation
Goran Vidović [Thu, 17 Oct 2019 12:08:58 +0000 (12:08 +0000)]
Update Croatian translation

7 years agoworkspace: Use graphene instead of clutter
Robert Mader [Thu, 17 Oct 2019 09:22:30 +0000 (11:22 +0200)]
workspace: Use graphene instead of clutter

This was forgotten after the graphene type port landed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/770

7 years agoworkspace: Sort windows in overview grid using cached center
Andrew Watson [Tue, 15 Oct 2019 11:35:18 +0000 (12:35 +0100)]
workspace: Sort windows in overview grid using cached center

When accessing properties on ClutterActor for size and position there is
a notable access time overhead. This overhead adds considerable user lag
when opening the overview if many windows are open.

This is primarily due to these properties being accessed while sorting
WindowClone instances by their window's center for placement in the
overview. By pre-computing this center value only once when
initializing WindowClone, the induced lag can be significantly reduced.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/763

7 years agoci: Make run-eslint more convenient for local use
Florian Müllner [Sat, 14 Sep 2019 15:09:04 +0000 (17:09 +0200)]
ci: Make run-eslint more convenient for local use

The script can be helpful outside of CI, in particular for gradually
transitioning to the new style.

Reverting commit f00201fa6ca it is already possible to do something
like

 $ CI_MERGE_REQUEST_PROJECT_URL=https://gitlab.gnome.org/GNOME/gnome-shell \
   CI_MERGE_REQUEST_TARGET_BRANCH_NAME=master CI_COMMIT_SHA=HEAD \
   .gitlab-ci/run-eslint.sh

but that is hardly convenient.

Instead, allow passing the required parameters on the command line:

 $ .gitlab-ci/run-eslint.sh origin master

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/730

7 years agoci: Ensure eslint output exists
Florian Müllner [Wed, 14 Aug 2019 11:14:23 +0000 (13:14 +0200)]
ci: Ensure eslint output exists

We are a long time away from an error-free eslint run,
but when we get there eventually, let's not trip over
non-existent files ...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/730

7 years agocleanup: Replace signal connections with virtual functions
Marco Trevisan (Treviño) [Tue, 10 Sep 2019 05:42:48 +0000 (07:42 +0200)]
cleanup: Replace signal connections with virtual functions

Inheriting from actors allows to use virtual functions instead of signal
connections for multiple cases, so just use them when possible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agost/button: Add the clicked button to virtual function signature
Marco Trevisan (Treviño) [Tue, 15 Oct 2019 19:13:59 +0000 (21:13 +0200)]
st/button: Add the clicked button to virtual function signature

clicked signal includes a clicked mouse button parameter, but the vfunc
signature doesn't include it, so it won't be passed to the functions when
the signal is emitted.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agopageIndicators: Use Clutter.Orientation as orientation parameter
Marco Trevisan (Treviño) [Tue, 10 Sep 2019 05:36:58 +0000 (07:36 +0200)]
pageIndicators: Use Clutter.Orientation as orientation parameter

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agodocs: Update `actor` and `delegate_` paragraph in HACKING
Marco Trevisan (Treviño) [Tue, 28 May 2019 06:30:10 +0000 (08:30 +0200)]
docs: Update `actor` and `delegate_` paragraph in HACKING

Deprecate the usage of the `actor` property, while keep the `_delegate` part
as it is needed for DnD for now.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agooverview: Make public properties read-only
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 02:04:34 +0000 (04:04 +0200)]
overview: Make public properties read-only

Overview's animationInProgress, visible and visibleTarget properties are not
meant to be modified from others, but be read only.

So make this clearer using properties getters and private values.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoavatar: Use Property bindings to sync reactivity
Marco Trevisan (Treviño) [Fri, 30 Aug 2019 23:32:03 +0000 (01:32 +0200)]
avatar: Use Property bindings to sync reactivity

Instead of manually updating properties on change, use native properties
bindings to keep the them synchronized.

Disable hover-tracking and focus-ability when the avatar is not sensitive.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agowindowManager: Inherit WindowDimmer from Clutter.BrightnessContrastEffect
Marco Trevisan (Treviño) [Wed, 28 Aug 2019 19:56:53 +0000 (21:56 +0200)]
windowManager: Inherit WindowDimmer from Clutter.BrightnessContrastEffect

As result add the effect to the actor on the caller function.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocalendarMessageList: Remove sections map and use clutter children
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 18:41:16 +0000 (20:41 +0200)]
calendarMessageList: Remove sections map and use clutter children

Now that the calendar message list and the message sections are actors, there's
no need to keep track of the sections in a different Map as we can just use the
native clutter functions to manage the children and access to their properties.

Also cleanup the signal connection/disconnection.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageList: Use St.Bin as message container and use clutter to manage the list
Marco Trevisan (Treviño) [Mon, 13 May 2019 18:02:26 +0000 (20:02 +0200)]
messageList: Use St.Bin as message container and use clutter to manage the list

When messages are added to the message list, we create a container for those,
however since now the messages are actor themselves we can just create a list
item actor that holds the message actor and refer to the message parent in order
to get their container.

This allows to remove the obj container map we used, using the native clutter
parent-child hierarchy and handle signal connections cleanly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agolookingGlass: Use resultsArea to keep track of results
Marco Trevisan (Treviño) [Mon, 20 May 2019 21:25:14 +0000 (23:25 +0200)]
lookingGlass: Use resultsArea to keep track of results

Now that results are actors we can just use their container to keep
track of them

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agosearch: Define SearchResultInterface and implement valid results with it
Marco Trevisan (Treviño) [Wed, 16 Oct 2019 10:38:48 +0000 (12:38 +0200)]
search: Define SearchResultInterface and implement valid results with it

Since all the search result classes are now GObject classes, we can enforce
the methods we want to have in there (just activate() for now) using an
interface, to make sure they are implementing what we require and to easily
group all the classes that can be used as search results, even though they
are not extending SearchResult.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocleanup: Use inheritance for Actor classes instead of composition
Marco Trevisan (Treviño) [Tue, 16 Jul 2019 09:24:13 +0000 (11:24 +0200)]
cleanup: Use inheritance for Actor classes instead of composition

Remove the `this.actor = ...` and `this.actor._delegate = this` patterns in most
of classes, by inheriting all the actor container classes.

Uses interfaces when needed for making sure that multiple classes will implement
some required methods or to avoid redefining the same code multiple times.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoscreenshot: Pass a Graphene.Point as PickPixel 'finished' signal
Marco Trevisan (Treviño) [Mon, 2 Sep 2019 23:51:00 +0000 (01:51 +0200)]
screenshot: Pass a Graphene.Point as PickPixel 'finished' signal

This will allow to pass the data as native object when porting this to Clutter
actor.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoscreenshot: Return a Meta.Rectangle as geometry
Marco Trevisan (Treviño) [Sat, 13 Jul 2019 00:17:20 +0000 (02:17 +0200)]
screenshot: Return a Meta.Rectangle as geometry

Since the geometry is used as a signal parameter, this can't be used when using
a GObject based class, so use the Meta boxed type instead of a JS object.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agooverview: Add OverviewActor and use as main actor of the Overlay
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 01:51:02 +0000 (03:51 +0200)]
overview: Add OverviewActor and use as main actor of the Overlay

Use the Overview class as controller, while create the actual overlay actor
using a GObject-derived class.

Replace actual properties with getter-only properties.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageTray: Dispose Source on destruction
Marco Trevisan (Treviño) [Tue, 14 May 2019 02:03:51 +0000 (04:03 +0200)]
messageTray: Dispose Source on destruction

Dispose the Source Object when dispose() is called, avoiding that it could be
called twice on a destroyed Source.

So, notify count changes before destroying the object, and don't emit this
twice on destroyNonResidentNotifications (as if a notification is destroyed
the property notify will happen in the notification destroy callback anyways).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageTray: Dispose Notification on destroy
Marco Trevisan (Treviño) [Tue, 14 May 2019 01:58:58 +0000 (03:58 +0200)]
messageTray: Dispose Notification on destroy

When the notification is destroyed we should also dispose the underneath GLib
object, and ensure that we don't dispose this twice.

In order to avoid this, don't destroy transient notifications that have been
already been removed and only destroy the resident notifications on activation
if they have not been destroyed earlier.
Thus connect after to the 'activated' signal and once the default handler has
been called destroy the notification if not requested earlier.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agomessageTray: Inherit Notification, Source and NotificationPolicy from GObject
Marco Trevisan (Treviño) [Mon, 13 May 2019 21:32:31 +0000 (23:32 +0200)]
messageTray: Inherit Notification, Source and NotificationPolicy from GObject

Register notifications, sources and policies as GObject gtypes so that they can
be passed in signals and use native properties and signals.

Reimplement all the extending classes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agokeyboard: Add KeyboardManager to manage the lifetime of the keyboard actor
Marco Trevisan (Treviño) [Wed, 28 Aug 2019 21:52:52 +0000 (23:52 +0200)]
keyboard: Add KeyboardManager to manage the lifetime of the keyboard actor

The Keyboard class used to be both a view and controller class, however in order
to make the keyboard a native Clutter.Actor, we need to separate the widget from
the controller class, so that we can manage the actor lifetime from the JS side.

Thus, initialize the keyboard actor on the Keyboard constructor and create a
KeyboardManager class to manage its state and lifetime.

Add proxy methods for the public functions that were used by other shell
components

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agobackground: Rename Background 'changed' signal to 'bg-changed'
Marco Trevisan (Treviño) [Fri, 12 Jul 2019 22:56:12 +0000 (01:56 +0300)]
background: Rename Background 'changed' signal to 'bg-changed'

Meta.Background has already a 'changed' signal and not to confuse the source
signal with the wrapper one, rename the wrapper class signal into 'bg-changed'.

This will be relevant when we'll inherit from Meta.Background, as signal
emissions from the base class could interfere with the wanted derived class
behavior and with the the grouping of successive changes into a single ::change
emission.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocalendar: Use GDateTime for selected-date-changed signal
Marco Trevisan (Treviño) [Mon, 2 Sep 2019 19:18:54 +0000 (21:18 +0200)]
calendar: Use GDateTime for selected-date-changed signal

Since GObject derived classes can't use JS objects as signal parameters, let's
go native and use GLib.DateTime instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoappDisplay: Use an St.Widget as base actor for FolderView
Marco Trevisan (Treviño) [Sat, 31 Aug 2019 03:21:10 +0000 (05:21 +0200)]
appDisplay: Use an St.Widget as base actor for FolderView

This is needed to make possible to convert BaseAppView into a St.Widget so that
all views can inherit from it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoanimation: Don't sync animation sizes on change
Marco Trevisan (Treviño) [Fri, 14 Jun 2019 14:44:19 +0000 (17:44 +0300)]
animation: Don't sync animation sizes on change

When the actor size changes, we might incur into an allocation cycle.

This was introduced by commit b6ec02ce, but when the animation will be an actor
itself, there will be no need to update the children size on actor size update,
as this will be managed by the actor allocation cycle itself.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1384
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agocleanup: Rename signals/methods that will conflict with Clutter.Actor
Marco Trevisan (Treviño) [Wed, 28 Aug 2019 20:06:14 +0000 (23:06 +0300)]
cleanup: Rename signals/methods that will conflict with Clutter.Actor

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559

7 years agoscreenShield: Compute lock timeout fade duration using animation settings
Marco Trevisan (Treviño) [Fri, 4 Oct 2019 09:04:43 +0000 (11:04 +0200)]
screenShield: Compute lock timeout fade duration using animation settings

When the screen is marked as idle, we normally start a fading animation and
a timeout to finally lock the screen. This timeout is configured using the
fade time if no longer delay is set in settings.

However if animations are disabled or slowed-down/up, the fade time is
different from the STANDARD_FADE_TIME and so we might end up showing the
lock shield without actually locking for STANDARD_FADE_TIME in the disabled
or slowed-up animations case, or locking too early in case of slowed-down
animations.

So, just adjust the timeout time using the same logic of animations so that
this value is matching all the times.

Related to https://gitlab.gnome.org/GNOME/gnome-shell/issues/1744

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/749

7 years agovolume: Show indicator when microphone is active
Florian Müllner [Sat, 14 Sep 2019 12:41:08 +0000 (14:41 +0200)]
volume: Show indicator when microphone is active

Devices like cameras and microphones are privacy sensitive, as they can
be used to spy on the user. We cannot prevent non-sandboxed apps from
doing that, but as we already track when the microphone is recording,
we can at least show an indicator to make sure it doesn't happen behind
the user's back.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/729

7 years agost: Remove color from ClutterActor pick virtual function
Daniel van Vugt [Mon, 14 Oct 2019 07:20:49 +0000 (15:20 +0800)]
st: Remove color from ClutterActor pick virtual function

It's unused since commit mutter@14c706e51

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/759

7 years agoReplace Clutter.Point by Graphene.Point
Georges Basile Stavracas Neto [Wed, 20 Feb 2019 19:54:29 +0000 (16:54 -0300)]
Replace Clutter.Point by Graphene.Point

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/421

7 years agost: Replace ClutterSize by graphene_size_t
Georges Basile Stavracas Neto [Wed, 20 Feb 2019 13:33:42 +0000 (10:33 -0300)]
st: Replace ClutterSize by graphene_size_t

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/421

7 years agoReplace ClutterVertex by graphene_point3d_t
Georges Basile Stavracas Neto [Wed, 20 Feb 2019 13:01:07 +0000 (10:01 -0300)]
Replace ClutterVertex by graphene_point3d_t

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/421

7 years agodoap: Clean up list of maintainers
Florian Müllner [Wed, 16 Oct 2019 10:23:37 +0000 (12:23 +0200)]
doap: Clean up list of maintainers

Move historic entries from "maintainers" to "authors" to reflect
current reality :-(

7 years agosearch: Activate SearchResult from the result itself
Marco Trevisan (Treviño) [Wed, 16 Oct 2019 00:23:22 +0000 (02:23 +0200)]
search: Activate SearchResult from the result itself

Search result views can include also objects that are not inheriting from
SearchResults (such as the AppIcon) that has not any 'activate' signal, to
connect to. Since we want to enforce a more formal interface, we want to
have just a simpler requirement as an activate() method.

So, instead using the 'activate' signal in SearchResult to activate a result
via SearchResultsBase just implement activate() in the result.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/765

7 years agosearch: Rename SearchResults to SearchResultsView
Marco Trevisan (Treviño) [Wed, 16 Oct 2019 09:31:44 +0000 (11:31 +0200)]
search: Rename SearchResults to SearchResultsView

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/765

7 years agoshell-screenshots: Do not pass a clip for window screenshots
Robert Mader [Mon, 14 Oct 2019 15:13:11 +0000 (17:13 +0200)]
shell-screenshots: Do not pass a clip for window screenshots

Design team wants us not to clip away the shadows, lets do that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/762

7 years agost/scroll-view: Remove container foreach vfunc
Marco Trevisan (Treviño) [Wed, 2 Oct 2019 20:41:04 +0000 (22:41 +0200)]
st/scroll-view: Remove container foreach vfunc

foreach_with_internals vfunc is deprecated for long time and not used
anymore, so remove it

Related to: https://gitlab.gnome.org/GNOME/mutter/merge_requests/816

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/747

7 years agoenvironment: Only disable unredirection of ongoing transitions
Florian Müllner [Mon, 14 Oct 2019 07:47:38 +0000 (09:47 +0200)]
environment: Only disable unredirection of ongoing transitions

When a transition is set up with a delay, it may be removed before it
actually started. We won't get a ::stopped signal in that case, with
the result that we currently end up with a mismatched unredirection
disabling.

Address this by only disable unredirection once the transition has
actually started.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1788

7 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 14 Oct 2019 07:15:23 +0000 (09:15 +0200)]
Updated Spanish translation

7 years agoBump version to 3.35.1
Florian Müllner [Sat, 12 Oct 2019 18:17:32 +0000 (20:17 +0200)]
Bump version to 3.35.1

Update NEWS.

7 years agomain: Show a warning when gdm is missing
Matthias Clasen [Sat, 8 Jun 2013 17:33:58 +0000 (13:33 -0400)]
main: Show a warning when gdm is missing

If we are not running under gdm, some functionaliy (such as
the lock screen) does not work, and we should inform the
user about this.

https://bugzilla.gnome.org/show_bug.cgi?id=701212

7 years agomain: Show a warning when running as root
Matthias Clasen [Sat, 8 Jun 2013 17:32:35 +0000 (13:32 -0400)]
main: Show a warning when running as root

gnome-session used to show a dialog in this case, but a
notification is more natural nowadays. Doing it in gnome-shell
avoids complicated synchronization between gnome-session and
gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=701212

7 years agojs: Replace Tweener time leftovers with ease duration
Marco Trevisan (Treviño) [Thu, 10 Oct 2019 00:14:28 +0000 (02:14 +0200)]
js: Replace Tweener time leftovers with ease duration

In some places we were not properly animating the actors as still using the
non-existent 'time' property instead of 'duration'

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/758

7 years agoanimation: Finish porting to clutter transitions
Marco Trevisan (Treviño) [Wed, 9 Oct 2019 03:14:15 +0000 (05:14 +0200)]
animation: Finish porting to clutter transitions

Animation when stopping the spinner was still using the old
parameters that not working, although if silently failing.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/758

7 years agoBump version to 3.34.1
Florian Müllner [Tue, 8 Oct 2019 21:25:35 +0000 (23:25 +0200)]
Bump version to 3.34.1

Update NEWS.

7 years agoRevert "windowManager: Use new reorder_workspace() API"
Florian Müllner [Tue, 8 Oct 2019 18:42:20 +0000 (20:42 +0200)]
Revert "windowManager: Use new reorder_workspace() API"

It's too easy to break, so revert to the old code until we
figure out a fix.

This reverts commit ff9bb5399b1d22fceaf00c9fc8e0058f24af96cc.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1497

7 years agowindowManager: Handle reordering of workspaces
Florian Müllner [Tue, 8 Oct 2019 18:27:34 +0000 (20:27 +0200)]
windowManager: Handle reordering of workspaces

MetaWorkspaceManager gained the ability to reorder workspaces, so make
sure to pick up the new order when that happens.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1497

7 years agoibusCandidatePopup: Use an internal actor to track IM focus position
Carlos Garnacho [Tue, 8 Oct 2019 10:22:34 +0000 (12:22 +0200)]
ibusCandidatePopup: Use an internal actor to track IM focus position

We share this actor with other shell menus, which arguably track a different
"cursor" as we care of the caret/anchor text positions, and menus care about
pointer click coordinates.

Use a standalone actor for this, so popups/IM are entirely decoupled.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1571
7 years agoshell-global: Ignore modal operations if we have no compositor
Marco Trevisan (Treviño) [Wed, 2 Oct 2019 19:56:05 +0000 (21:56 +0200)]
shell-global: Ignore modal operations if we have no compositor

Modal dialog actions might be triggered during display closing, and in such
cases we should just ignore the requests.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/746

7 years agoshell-global: Disconnect from stage events on X11 display close
Marco Trevisan (Treviño) [Wed, 2 Oct 2019 19:24:37 +0000 (21:24 +0200)]
shell-global: Disconnect from stage events on X11 display close

As per GNOME/mutter!385 [1], the compositor is finalized an its pointer
cleared on display close.

However, since the shell reacts to such events instead of controlling them,
when the shell is stopping or restarting and its display closing, the shell
stage destroys its children after the display closing is finished and during
this process the focus is unset, causing focus_actor_changed() to be called
and thus calls to meta_stage_is_focused() which deferences the now NULL
compositor, leading to a crash on shutdown.

Since after this point we should just ignore any stage event, disconnect
from them all.

[1] https://gitlab.gnome.org/GNOME/mutter/merge_requests/385

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/746

7 years agoshellDBus: Don't assume devices have a node
Florian Müllner [Fri, 20 Sep 2019 19:08:45 +0000 (21:08 +0200)]
shellDBus: Don't assume devices have a node

Clutter.InputDevice.get_device_node() may return null. Handle that
case when building the 'AcceleratorActivated' vardict parameter.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1641

7 years agonetworkAgent: add support for SAE secrets
Lubomir Rintel [Fri, 4 Oct 2019 12:21:25 +0000 (14:21 +0200)]
networkAgent: add support for SAE secrets

NetworkManager supports "WPA3 Personal" networks for some time now, they
use the SAE authentication. Add support for it alongside other
password-based mechanisms.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/751

7 years agoUpdated Danish translation
Alan Mortensen [Sun, 6 Oct 2019 16:16:32 +0000 (18:16 +0200)]
Updated Danish translation

7 years agomain, util: Notify systemd once we are fully initialised
Iain Lane [Fri, 4 Oct 2019 11:11:06 +0000 (12:11 +0100)]
main, util: Notify systemd once we are fully initialised

If graphical applications want to start from systemd units, they need to
start after we're properly ready to display them. This is particularly
important under X where `_GTK_FRAME_EXTENTS` and other xprops are needed
to have the right theming.

We're doing this in an idle callback so that the dynamic starting of
`gnome-session-x11-service.target` (which launches `gsd-xsettings`) as
the result of a signal emission happens before us signalling we're ready
for later things to start.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/750

7 years agoUpdate Japanese translation
Ryuta Fujii [Fri, 4 Oct 2019 14:54:06 +0000 (14:54 +0000)]
Update Japanese translation

7 years agoUpdate Japanese translation
Ryuta Fujii [Fri, 4 Oct 2019 14:52:49 +0000 (14:52 +0000)]
Update Japanese translation

7 years agolightbox: Show the actor before easing it
Marco Trevisan (Treviño) [Thu, 3 Oct 2019 13:13:21 +0000 (15:13 +0200)]
lightbox: Show the actor before easing it

As per clutter optimizations in should_skip_implicit_transition() any
transition will be ignored if applied to an actor with unmapped clones.

Since we initialize the lightbox as hidden, when we use it standalone (as it
happens for the long fade in screenShield) the transition will be ignored.
This causes the lockscreen fade-out after the idle delay not to work, but
instead to have an apparently locked system that is instead not locked at
all.

So, just ensure that the lightbox actor is visible before applying to it any
transition.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1683

7 years agoibusManager: Cancel the preload engines timeout on clear
Marco Trevisan (Treviño) [Wed, 25 Sep 2019 20:15:38 +0000 (22:15 +0200)]
ibusManager: Cancel the preload engines timeout on clear

This is created when preloading but never cancelled if ibus disappears

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/743

7 years agoibusManager, inputMethod: Cancel async ibus calls chain on disconnect
Marco Trevisan (Treviño) [Wed, 25 Sep 2019 18:56:46 +0000 (20:56 +0200)]
ibusManager, inputMethod: Cancel async ibus calls chain on disconnect

The shell tries to spawn the ibus daemon on startup if unavailable, however
as per commit 8adfc5b1 we also force restarting it once the X11 server is
available.
Unfortunately this could cause a race if we disconnect while we were already
connected to an ibus daemon, but still in the process of going through the
various nested calls.
In fact the ::disconnect callback didn't stop any further async ibus call
that, even if failing, would have eventually triggered the emission of a
'ready' signal and to the Keyboard's callback, leading under X11 to a full
grab owned by ibus daemon.

In order to avoid this and keep control of the calls order, use in both
IbusManager and InputMethod a cancellable that is setup before connecting to
the bus, and that is cancelled on disconnection.
Then handle the finish() calls properly, using try/catch to validate the
returned value, taking in account the potential error and just not
proceeding in case of cancellation.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1712

7 years agoinputMethod: Do not change IBus.Capabilite by focus events
Takao Fujiwara [Tue, 1 Oct 2019 10:53:20 +0000 (19:53 +0900)]
inputMethod: Do not change IBus.Capabilite by focus events

gnome-shell calls ibus_input_context_focus_in() in InputMethod.focus_in()
but the event is not actually forwarded to panels and engines in GNOME
Wayland because gnome-shell changes IBus.Capabilite by focus events and
disables IBus.Capabilite.FOCUS when ibus_input_context_focus_in() is called.

IBus.Capabilite is assumed a fixed value per input context in the
first place and it should not be changed by focus events.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/573

7 years agoUpdated Danish translation
Ask Hjorth Larsen [Wed, 2 Oct 2019 03:35:36 +0000 (05:35 +0200)]
Updated Danish translation

7 years agoUpdated Czech translation
Marek Černocký [Wed, 2 Oct 2019 01:57:00 +0000 (03:57 +0200)]
Updated Czech translation

7 years agoUpdated Slovenian translation
Matej Urbančič [Sat, 28 Sep 2019 19:13:30 +0000 (21:13 +0200)]
Updated Slovenian translation

7 years agoUpdated Slovenian translation
Matej Urbančič [Thu, 26 Sep 2019 20:02:27 +0000 (22:02 +0200)]
Updated Slovenian translation

7 years agoUpdate Friulian translation
Fabio Tomat [Thu, 26 Sep 2019 14:20:38 +0000 (14:20 +0000)]
Update Friulian translation

7 years agoUpdate Slovak translation
Dušan Kazik [Thu, 26 Sep 2019 06:43:01 +0000 (06:43 +0000)]
Update Slovak translation

7 years agoshell-util: Handle NULL from meta_window_get_image()
Florian Müllner [Mon, 23 Sep 2019 11:46:05 +0000 (13:46 +0200)]
shell-util: Handle NULL from meta_window_get_image()

Until commit 506b75fc7f3 we got away with not handling a NULL return
value, as cairo_surface_destroy() deals with a NULL surface; the same
isn't true for get_width/get_height, so guard to code in question to
prevent a crash.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1678

7 years agoUpdate Dutch translation
Nathan Follens [Wed, 25 Sep 2019 11:11:56 +0000 (11:11 +0000)]
Update Dutch translation

7 years agomain: Remove NOTIFY_SOCKET from environment
Benjamin Berg [Mon, 23 Sep 2019 09:04:18 +0000 (11:04 +0200)]
main: Remove NOTIFY_SOCKET from environment

It is only used exactly once to notify systemd about the service
startup. So unset it as soon as possible as it can leak into
subprocesses we spawn otherwise.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/741

7 years agoslider: Unset signal IDs when ending the slider drag
Jonas Dreßler [Sun, 22 Sep 2019 11:31:02 +0000 (13:31 +0200)]
slider: Unset signal IDs when ending the slider drag

Unset the signal IDs we connected to when starting the drag. Otherwise
we get error messages if a touch drag is ended after a mouse drag
happened because the signal IDs are still set but no signals are
connected.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/740

7 years agoUpdate Japanese translation
Ryuta Fujii [Sun, 22 Sep 2019 11:29:14 +0000 (11:29 +0000)]
Update Japanese translation

7 years agoUpdate Japanese translation
Ryuta Fujii [Sun, 22 Sep 2019 11:27:23 +0000 (11:27 +0000)]
Update Japanese translation

7 years agoshell-util: Do not scale the clip in get_content_for_window_actor()
Robert Mader [Sat, 14 Sep 2019 17:24:36 +0000 (19:24 +0200)]
shell-util: Do not scale the clip in get_content_for_window_actor()

This is now handled in Mutter. Also, respect the result size instead
of assuming it to be equal to the clip size, as the clip takes actor
coordinates while the result takes buffer coordinates.

This can be fixed in a future API iteration.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/728

7 years agoUpdate Galician translation
Fran Dieguez [Fri, 20 Sep 2019 17:19:17 +0000 (17:19 +0000)]
Update Galician translation

7 years agoscreenShield: Stop using deprecated actor property
Florian Müllner [Fri, 20 Sep 2019 11:14:40 +0000 (13:14 +0200)]
screenShield: Stop using deprecated actor property

Both LoginDialog and UnlockDialog are now actor subclasses, so stop
using the deprecated actor delegate that will trigger a warning.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/736

7 years agounlockDialog: Use inheritance instead of composition
Florian Müllner [Fri, 20 Sep 2019 11:17:40 +0000 (13:17 +0200)]
unlockDialog: Use inheritance instead of composition

The screen shield creates the unlock dialog based on the session mode.

However since commit 0c0d76f7d6990 turned LoginDialog into an actor
subclass (while UnlockDialog kept using the delegate pattern), it is
no longer possible to handle both objects the same way without warnings.

Allow this again by turning UnlockDialog into an actor subclass as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/736

7 years agologinDialog: Stop using deprecated actor property
Florian Müllner [Fri, 20 Sep 2019 11:09:13 +0000 (13:09 +0200)]
loginDialog: Stop using deprecated actor property

Commit 0c0d76f7d6990 made the class an actor subclass, so the actor
property is just a deprecated synonym of the object itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/736

7 years agoenvironment: Try harder to find a transition
Florian Müllner [Fri, 20 Sep 2019 00:50:36 +0000 (02:50 +0200)]
environment: Try harder to find a transition

When easing, we need the transition of one of the involved properties
to connect our callbacks. Currently we simply get the transition for
the first property, however as Clutter optimizes the case where a
property doesn't actually change, that transition may be NULL even
though we still animate other properties.

So instead of only looking at the transition of the first property,
try to find a transition for any of the involved properties.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1572

7 years agolayout: Don't use the actors pick workaround on update regions
Marco Trevisan (Treviño) [Thu, 19 Sep 2019 09:46:39 +0000 (11:46 +0200)]
layout: Don't use the actors pick workaround on update regions

As per introduction of geometric picking in mutter [1], the workaround we
had consisting in picking all the actors to ensure that all the stage
projections were computed to get valid actors stage-transformed coordinates
and sizes is not working anymore as there is more caching involved.

However since this can be now handled properly in mutter [2], initializing a
valid projection matrix since the beginning, we can get rid of the
workaround.

[1] https://gitlab.gnome.org/GNOME/mutter/commit/14c706e51
[2] https://gitlab.gnome.org/GNOME/mutter/merge_requests/803

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/734

7 years agorenameFolderMenu: Use a custom menu item inheriting from PopupBaseMenuItem
Marco Trevisan (Treviño) [Sat, 14 Sep 2019 01:03:15 +0000 (03:03 +0200)]
renameFolderMenu: Use a custom menu item inheriting from PopupBaseMenuItem

The RenameFolderMenu uses the internal box as a menu item, while PopupMenu
expects to have PopupBaseMenuItem based children with a delegate set.

Instead of using a custom menu with a customized box acting as menu
item,just add a RenameFolderMenuItem that inherits from the parent,
adjusting the features as we need them. In fact, the rename folder menu item
doesn't need any label, padding or default styling so we can reuse
PopupMenuBaseItem after we use our styling properties and we set the
Ornament to HIDDEN.

To get the proper style in place, define rename-folder-popup and
rename-folder-popup-item to override the default popup-menu-item rule
padding instead of using margins.

Pass the menu item as menu's focusActor as this will key-focus it on pop-up,
by overriding the key_focus_in() vfunc we can then delegate the focus
handling to the entry's clutter-text.

Also override the map() vfunc in order to update the entry's content before
mapping the entry.

Finally, use the item's activate method in order to tell the parent menu
we're done with it and that the menu can be closed.

As consequence we can also remove the menu's popup() method, and just use
the default open().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agorenameFolderMenu: Move to non-legacy coding style
Marco Trevisan (Treviño) [Fri, 13 Sep 2019 03:19:02 +0000 (05:19 +0200)]
renameFolderMenu: Move to non-legacy coding style

Use proper indentation on multi-line methods calls and use single quotes on
button label.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agorenameFolderMenu: Set the entry as menu focus actor
Marco Trevisan (Treviño) [Wed, 11 Sep 2019 18:09:08 +0000 (20:09 +0200)]
renameFolderMenu: Set the entry as menu focus actor

When the rename folder menu is opened the text entry is expected to be
focused and selected for a quick editing.
While this is required it doesn't actually happens since PopupMenu by
default gives the key focus to the source actor, that is then free to pass
the key focus to the menu if there's an user interaction.

In this case however, we want the text entry to be focused once we prompt
the menu, so just use the PopupMenu's focusActor property to ensure it will
handle it for us.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1604
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720

7 years agopopupMenu: Add focusActor property to define the default focus actor
Marco Trevisan (Treviño) [Fri, 13 Sep 2019 03:15:41 +0000 (05:15 +0200)]
popupMenu: Add focusActor property to define the default focus actor

The PopupMenuManager is supposed to grab and focus the menu actors, with
normal menus we always need to grab the actual menu but set the key focus to
the source actor so that it will be able to move the focus to the menu
child, if requested.

However there are menus such as the RenameFolderMenu that requires the
key-focus once prompted, so provide a focusActor property (defaulting to the
sourceActor) that can be set in order to define the actor to give the
keyboard focus to, when the menu is popped-up.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1604
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/720